Multi-layer lighting source with textured lighting gel layer

ABSTRACT

A multi-layer light source includes an emissive layer and a textured lighting gel layer, the lighting gel layer being situated between the emissive layer and a 2D canvas or a 3D object. User inputs controlling the multi-layer light source are received, these user inputs being provided with the user interacting with the 2D canvas without switching to editing in 3D space. The multi-layer light source is configured based on the user inputs and, based on the configuration, emission of light rays from the multi-layer light source is determined. Areas of shadows cast by 3D objects are also determined. An image generation system determines, a color of a location (e.g., a pixel) on the 2D canvas or the 3D object that a light ray intersects based on the color that is in the lighting gel layer that the light ray passes through.

BACKGROUND

As computer technology has advanced, various types of applications havebecome increasingly complex. Examples of such applications include imageediting applications that allow users to create new content, editpreviously made content, and so forth. Many of these applications are in2-dimensional (2D) space and provide various features allowing creationand editing of 2D images.

While these image editing applications are very useful, they are notwithout their problems. One such problem is that some users desire toincorporate 3-dimensional (3D) objects into 2D image editingapplications. For example, some users desire to have 3D geometrygeneration such as bevel extensions, revolving of objects, and so forthavailable in their 2D image editing applications, expecting realistic 3Dlighting and shading effects to be available as well. However, currentsolutions require the user to manually create all the geometric detailsto depict interactions with light such as shadows and highlights. Thismanual creation typically requires significant time and knowledge of 3Dgraphics design, which many users do not have. Accordingly, currentsolutions to incorporate 3D assets into 2D image editing applicationsare oftentimes time consuming and require knowledge that many users donot have, resulting in user dissatisfaction and frustration with theirimage editing applications.

SUMMARY

To mitigate the drawings of conventional image editing solutions, amulti-layer light source system as implemented by a computing device isdescribed to provide a multi-layer lighting source with texturedlighting gel layer. In one or more implementations, a 2D image having atexture is received. A user input indicating a positioning of the 2Dimage on a 2D canvas or on a 3D object on the 2D canvas is alsoreceived, the user input having two dimensions of control (e.g., the xdimension and y dimension in an x-y plane). The texture is mapped to a2D lighting gel layer of the multi-layer light source, the 2D lightinggel layer being situated between an emissive layer of the multi-layerlight source and the 2D canvas. The emission of the multi-layer lightsource is determined, based on the emissive layer and the 2D lightinggel layer, as the emission from the 2D lighting gel layer. Colors oflocations on the 2D canvas or the 3D object are changed based on theemission of the multi-layer light source and the colors of locations ofthe 2D lighting gel layer that light rays pass through in illuminatingthe 2D canvas or the 3D object.

This Summary introduces a selection of concepts in a simplified formthat are further described below in the Detailed Description. As such,this Summary is not intended to identify essential features of theclaimed subject matter, nor is it intended to be used as an aid indetermining the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is described with reference to the accompanyingfigures. Entities represented in the figures are indicative of one ormore entities and thus reference is made interchangeably to single orplural forms of the entities in the discussion.

FIG. 1 is an illustration of a digital medium environment in an exampleimplementation that is operable to employ the multi-layer lightingsource with textured lighting gel layer described herein.

FIG. 2 is an illustration of an example architecture of a multi-layerlight source system.

FIG. 3 illustrates an example multi-layer light source.

FIG. 4 illustrates an example system using the multi-layer light sourcesystem.

FIGS. 5, 6, 7, and 8 illustrate examples of a multi-layer light sourceand light rays intersecting a canvas.

FIG. 9 illustrates an example user interface allowing user input tocontrol various aspects of the multi-layer light source.

FIG. 10 illustrates an example of an object and a lighting gel layerused with the techniques discussed herein.

FIG. 11 illustrates examples of using different intensity values.

FIG. 12 illustrates examples of using different distance values.

FIG. 13 illustrates examples of changing the position parameter values.

FIG. 14 illustrates another example of a lighting gel layer and 3Dobject.

FIG. 15 illustrates another example multi-layer light source.

FIG. 16 is a flow diagram depicting a procedure in an exampleimplementation of a multi-layer lighting source with textured lightinggel layer.

FIG. 17 illustrates an example system including various components of anexample device that is implemented as any type of computing device asdescribed and/or utilized with reference to FIGS. 1-16 to implementaspects of the techniques described herein.

DETAILED DESCRIPTION Overview

Current solutions for modeling 3D objects require the 3D object to bemanually created and edited in 3D space in order to depict interactionswith light such as shadows. Many users do not have sufficient knowledgeof 3D graphics design to create and edit objects in 3D space, making itdifficult for them to accurately model 3D objects.

To overcome these problems, a multi-layer lighting source having atextured lighting gel layer is discussed herein. Generally, amulti-layer light source includes an emissive layer and a texturedlighting gel layer, the lighting gel layer being situated between theemissive layer and a 2D canvas or a 3D object. User inputs controllingthe multi-layer light source are received, such as a texture to use forthe lighting gel layer, the intensity of the emissive layer, thedistance of the lighting gel layer from the 2D canvas or the 3D object,the position of the lighting gel layer with respect to the 2D canvas orthe 3D object, and so forth. These user inputs are provided with theuser interacting with the 2D canvas without switching to editing in 3Dspace. The multi-layer light source is configured based on the userinputs and, based on the configuration, emission of light rays from themulti-layer light source is determined. Areas of shadows cast by 3Dobjects are also determined. An image generation system determines acolor of a location (e.g., a pixel) on the 2D canvas or the 3D objectthat one or more light rays intersect based on the one or more colorsthat are in the lighting gel layer that the one or more light rays passthrough as well as the radiances of each of the one or more light raysdetermined by the locations of the lighting gel layer that the one ormore light rays pass through.

More specifically, a multi-layer light source system receives userinputs to configure a multi-layer light source. In one or moreimplementations, the multi-layer light source is a dual-layer lightsource that provides varying light emission by placing a lighting gellayer in front of an emissive layer. The emissive layer is a diffuseemitter that shines a single color that is changed as it passes throughthe lighting gel layer. This is performed using, for example,ray-tracing or projective geometry. The lighting gel layer is mappedwith a texture and is implementable in various 2D manners, such as pixelimages, raster images, vector art, and so forth. The techniquesdiscussed herein allow complex appearances to be produced intuitivelywithout creating extra 3D geometries or light sources.

The multi-layer light source system receives one or more of variousdifferent user inputs, such as an indication of a position of themulti-layer light source (in 2D space), an indication of a distancebetween the lighting gel layer from a 3D object or a canvas on which ashadow is projected, an indication of the intensity of emitted lightpassing through the lighting gel layer, and an indication of a texturefor the lighting gel layer. Various additional user inputs are alsooptionally received, such as whether the emissive layer is a local ordistant light source, a distance between the emissive layer and thelighting gel layer, a position of the emissive layer (e.g., in order tocast shadows), and so forth. The multi-layer light source systemconfigures the multi-layer light source in accordance with the receiveduser inputs.

The emissive layer is implemented in various manners, for example as asingle point or an area (e.g., an ellipse or other shape). The lightinggel layer is one of any of a variety of different shapes, such as arectangle, ellipse, outline of text, and so forth. The lighting gellayer is generated based on any of a variety of different types ofimages or drawings, such as pixel images, raster images, vector art, andso forth. In one or more implementations an image or drawing is receivedand the texture in that image or drawing is mapped to the lighting gellayer.

Light rays passing through the lighting gel layer are affected by thelighting gel layer in accordance with the image used as the lighting gellayer. In one or more implementations light rays not passing through thelighting gel layer have a radiance of zero. Accordingly, light rays notpassing through the lighting gel layer do not result in the emissivelayer altering the appearance or illumination of locations on a canvasor 3D object based on those light rays.

The lighting gel layer is in 2D space rather than being modeled in 3Dspace and thus the multi-layer light source need not model the textureof the lighting gel layer in 3D space. Accordingly, the multi-layerlight source system need not make a 3D geometry in the lighting gellayer and need not make any specific materials of the lighting geltexture in 3D space in the lighting gel layer. However, the lighting gellayer adjusts the emissions from the emissive layer, creating lightingeffects similar to or consistent with the lighting effects that aregenerated by constructing 3D geometry and 3D material.

In one or more implementations, an image generation system determinesthe color of a location (e.g., a pixel) on a canvas or a 3D object thatone or more light rays from the emissive layer intersect based on theradiance of the one or more locations of the lighting gel layer that theone or more light rays pass through. The image generation system usesany of a variety of public or proprietary techniques to determine thecolor of the location on the canvas or the 3D object based on theunderlying color of the canvas or 3D object at that location, theradiances of the one or more light rays intersecting that location andthe lighting gel layer, the colors of the lighting gel layer at the oneor more locations that the one or more light rays pass through, a colorof the emissive layer, combinations thereof, and so forth.

In one or more implementations the multi-layer light source systemdetermines areas of shadows cast by objects in the 3D space, includingthe direction and length of shadows. Shadows are cast by a 3D objectonto a canvas, onto another 3D object, or onto the 3D object itself Δnindication of the locations or areas of shadows on a canvas or 3D objectare provided to an image generation system, allowing the imagegeneration system to generate the shadow in those locations or areas(e.g., by not tracing a light ray from the shadow locations to theemissive layer and not modifying the shadow locations based on theemissive layer or the lighting gel layer).

In one or more implementations, the emissive layer is an area includingmultiple points (e.g., an ellipse) rather than a single point.Accordingly, shadows are cast due to the 3D object differently than ifthe emissive layer is a single point. For example, because the emissivelayer is an area larger than a single point (e.g., is an ellipse),multiple rays from the emissive layer pass through the lighting gellayer and intersect each location (e.g., each pixel) of the object andcanvas. This results in areas of soft shadows being cast, which areareas on the object or canvas where some rays from the emissive layerare occluded by an object and other rays are not occluded. Furthermore,in areas where shadows are not cast (or within the soft shadow area),the multiple rays from the emissive layer passing through differentlocations of the lighting gel layer and intersecting each location(e.g., each pixel) of the object and canvas result in an area of blur.

The emissive layer is determined by receiving a user input referred toas a blur kernel. The user input is received in any of a variety ofdifferent manners, such as the user drawing of an area (e.g., anellipse) on a canvas. For example, given an elliptical blur kernel onthe canvas, the elliptical blur kernel is mapped to an ellipticalemissive layer for use in the multi-layer light source.

In one or more implementations, the scale of emission by the multi-layerlight source is changed due to shadows or blurriness. This change in thescale of emission keeps the irradiance on the canvas approximatelyunchanged despite any shadowing or blurriness. Accordingly, usersperceive little or no change in the overall brightness of the object orcanvas despite the presence of blurring or shadows. The change in thescale of emission is performed by changing the out-going radiance fromthe emissive layer. The out-going radiance from the emissive layer ischanged, for example, in response to a change in intensity of theemissive layer, a change in the distance of the lighting gel layer fromthe 3D object or canvas, or a change in position of the lighting gellayer in an x-y plane.

The techniques discussed herein allow user interaction with a 2D spaceto create and edit the multi-layer light source. This alleviates theneed for the user to interact with a 3D object in 3D space in order todepict interactions of the 3D object with light, such as shadows andhighlights. Thus, the user interface is simplified, allowing the user tointeract with simple 2D controls (e.g., a slider control) to setlighting parameters for the multi-layer light source.

Furthermore, the techniques discussed herein reduce resource usage in acomputing device (e.g., memory, processor capacity) by allowing userinteraction with the 2D space to create and edit the multi-layer lightsource rather than interacting with the 3D object in 3D space. Theresources needed to model the 3D object in 3D space for purposes ofdepicting interactions of the 3D object with light need not be expended.

Term Descriptions

These term descriptions are provided for purposes of example only andare not intended to be construed as limiting on the scope of the claims.

The term “texture” refers to various colors or shades of colors thatare, for example, applied to a canvas or object. Examples of textureinclude different colors, different shades of the same color (e.g., togive an appearance of peaks and valleys on a surface), and so forth.

The term “multi-layer light source” refers to a light source includingan emissive layer and one or more lighting gel layers. Each lighting gellayer has a texture that introduces variations to the emission from theemissive layer.

In the following discussion, an example environment is first describedthat employs examples of techniques described herein. Example proceduresare also described which are performable in the example environment aswell as other environments. Consequently, performance of the exampleprocedures is not limited to the example environment and the exampleenvironment is not limited to performance of the example procedures.

Example Environment

FIG. 1 is an illustration of a digital medium environment 100 in anexample implementation that is operable to employ the multi-layerlighting source with textured lighting gel layer described herein. Theillustrated environment 100 includes a computing device 102, implementedin any of a variety of ways. Examples of the computing device 102include a mobile device (e.g., assuming a handheld configuration such asa tablet or mobile phone), a wearable device (e.g., augmented reality orvirtual reality headsets, smartwatches), a laptop computer, a desktopcomputer, a game console, an automotive computer, and so forth. Thus,implementations of the computing device 102 range from full resourcedevices with substantial memory and processor resources (e.g., personalcomputers, game consoles) to a low-resource device with limited memoryand/or processing resources (e.g., mobile devices). Additionally,although a single computing device 102 is shown, additionally oralternatively the computing device is representative of a plurality ofdifferent devices, such as multiple servers utilized by a business toperform operations “over the cloud” as described in FIG. 17.

The computing device 102 is illustrated as including an application 104that includes a multi-layer light source system 106 and an imagegeneration system 108. The application 104 processes and transformsdigital content 110, which is illustrated as maintained in storage 112of the computing device 102. Such processing includes creation of thedigital content 110 and rendering of the digital content 110 in a userinterface 114 for output, e.g., by a display device 116. The storage 112is any of a variety of different types of storage, such as random accessmemory (RAM), Flash memory, solid state drive, magnetic disk drive, andso forth. Although illustrated as implemented locally at the computingdevice 102, additionally or alternatively functionality of theapplication 104, including the multi-layer light source system 106 andthe image generation system 108, is implemented in whole or part viafunctionality available via a network 118, such as part of a web serviceor “in the cloud.”

The computing device 102 also includes an operating system 120 thatimplements functionality to manage execution of application 104 as wellas other applications on the computing device 102, to operate as aninterface between the application 104 and hardware of the computingdevice 102, and so forth. Although illustrated as being included in theapplication 104, additionally or alternatively the multi-layer lightsource system 106 is included in the operating system 120.

The multi-layer light source system 106 implements functionality toprovide a multi-layer light source. In one or more implementations, themulti-layer light source system 106 includes two layers, an emissivelayer and a textured lighting gel layer. The emissive layer is a diffusearea light source with a constant emission and the lighting gel layerintroduces variations to the emission. The lighting gel layer is mappedwith a texture (e.g., for colored shadows) without modeling a 3D scene.The two layers together cast the texture with different effects. To castlighting on a planar canvas in 2D design, the multi-layer light sourceis created and edited in the 2D canvas directly without switching to a3D space. Thus, the user need not be very knowledgeable or experiencedwith 3D design, and the workload is alleviated accordingly.

The image generation system 108 implements functionality to display ascene including 3D objects. The colors displayed on the objects varybased on the lighting gel layer of the multi-layer light source 106 asdiscussed in more detail below. For example, an object (a rock) and alighting gel layer (the letters Ai) are illustrated at 122. The imagegeneration system 108, using the multi-layer light source 106, displaysthe object with the lighting gel layer projected onto the object asillustrated at 124.

Although a single application 104 is illustrated in FIG. 1, any numberof applications are includable in the computing device 102. Anyadditional applications included in the computing device 102 optionallyinclude a multi-layer light source system 106 to provide a multi-layerlight source.

In general, functionality, features, and concepts described in relationto the examples above and below are employable in the context of theexample systems and procedures described herein. Further, functionality,features, and concepts described in relation to different figures andexamples in this document are interchangeable among one another and arenot limited to implementation in the context of a particular figure orprocedure. Moreover, blocks associated with different representativeprocedures and corresponding figures herein are applicable togetherand/or combined in different ways. Thus, individual functionality,features, and concepts described in relation to different exampleenvironments, devices, components, figures, and procedures herein areusable in any suitable combinations and are not limited to theparticular combinations represented by the enumerated examples in thisdescription.

Multi-Layer Light Source System Architecture

FIG. 2 is an illustration of an example architecture of a multi-layerlight source system 106. The multi-layer light source system 106includes a user input module 202, a light source configuration module204, a ray emission determination module 206, a shadow generation module208, an anisotropic blur module 210, and an emission scaling module 212.In one or more implementations, the multi-layer light source system 106is a dual-layer light source model that provides varying light emissionby placing a lighting gel layer in front of an emissive layer. In one ormore implementations the emissive layer is a diffuse emitter that shinesa single color that is changed as it passes through the lighting gellayer. This is performed using, for example, ray-tracing or projectivegeometry. The lighting gel layer is mapped with a texture and isimplementable in various 2D manners, such as pixel images, rasterimages, vector art, and so forth. The techniques discussed herein allowcomplex appearances to be produced intuitively without creating extra 3Dgeometries or light sources.

Generally, the user input module 202 receives user inputs controllingthe multi-layer light source, such as a position indication 220 of themulti-layer light source (in 2D space), a distance indication 222identifying a distance between the lighting gel layer, and a canvas or3D object on which the shadow is projected, an intensity indication 224identifying the intensity of emitted light passing through the lightinggel layer, and a texture indication 226 identifying a texture for thelighting gel layer of the multi-layer light source. The user inputmodule 202 provides the various user inputs to the light sourceconfiguration module 204, the shadow generation module 208, theanisotropic blur module 210, and the emission scaling module 212 asinput data 228. In one or more implementations the same input data 228is provided to all of the modules 204, 208, 210, and 212. Additionallyor alternatively, different input data 228 is provided to different onesof the modules 204, 208, 210, and 212 depending on the functionalityimplemented by the particular module.

The light source configuration module 204 configures the multi-layerlight source based on the inputs received by the user input module 202.The ray emission determination module 206 determines the emission oflight rays from the multi-layer light source. The shadow generationmodule 208 determines areas of shadows cast by 3D objects. Theanisotropic blur module 210 determines a size of an emissive layer thatis larger than a single point to blur the texture of the lighting gellayer. The emission scaling module 212 determines changes in the scaleof emission by the multi-layer light source due to shadows orblurriness.

The light source configuration module 204 implements functionality toconfigure the multi-layer light source based on the inputs received bythe user input module 202. This configuration includes, for example,modifying the emission of the emissive layer, setting the texture of thelighting gel layer, changing lighting parameters for the multi-layerlight source that change the emissive layer or the lighting gel layer,and so forth. The light source configuration module providesconfiguration data 230 to the ray emission determination module 206. Inone or more implementations the configuration data includes settings forthe emissive layer and the lighting gel layer.

The ray emission determination module 206 implements functionality toprovide ray emission data 232 to the image generation system 108. Theray emission data 232 is the final emission of the multi-layer lightsource (L_(DLLS)) as discussed in more detail below. The imagegeneration system 108 uses the ray emission data 226 to display, basedat least in part on the multi-layer light source 106, the texture fromthe lighting gel layer on a 2D canvas or 3D object.

More specifically, the user input module 202 implements functionality toreceive user inputs controlling the multi-layer light source. The userinput module 202 receives one or more of various different user inputs,such as a position indication 220 of the multi-layer light source (in 2Dspace), a distance indication 222 identifying a distance between thelighting gel layer from a 3D objects or a canvas on which a shadow isprojected, an intensity indication 224 identifying the intensity ofemitted light passing through the lighting gel layer and a textureindication 226 identifying a texture for the lighting gel layer. In oneor more implementations, the position indication 220 indicates aposition of the lighting gel layer of the multi-layer light source,allowing the shadows to be cast by the multi-layer light source asdiscussed in more detail below. These indications 220, 222, 224, and 226are used by the multi-layer light source system 106 as discussed in moredetail below.

In one or more implementations various additional user inputs are alsoreceived. Examples of such additional user inputs include a whether theemissive layer is a local or distant light source, a distance betweenthe emissive layer and the lighting gel layer, a position of theemissive layer (e.g., in order to cast shadows), and so forth.Additionally or alternatively, default values are used by themulti-layer light source system 106 rather than user input values.

The ray emission determination module 206 implements functionality todetermine the emission of light rays from the multi-layer light source.FIG. 3 illustrates an example multi-layer light source used by rayemission determination module 206. The multi-layer light source is amulti-layer light model 300 having two layers (a dual layer lightsource) including an emissive layer 302 and a lighting gel layer 304. Inone or more implementations, the emissive layer is a constant diffuseemitter. The final emission L_(DLLS)(x_(e), x_(g)) of the multi-layerlight model 300 along a light ray traced from a position x_(e) on theemissive layer 302 is determined by its intersection of the lighting gellayer 304 at a position x_(g). In one or more implementations, thelighting gel layer 304 is implemented as a spatial-variant butdirectional-constant bidirectional transmittance distribution function(BTDF). Additional information regarding the BTDF is found in“Microfacet models for refraction through rough surfaces” by BruceWalter, Stephen R. Marschner, Hongsong Li, and Kenneth E. Torrance,Eurographics Symposium on Rendering (EGSR '07), page 195-206, Goslar, DE U, (2007), which is hereby incorporated by reference herein in itsentirety. The BTDF models the transmission of light through a surface.

The final emission of the multi-layer light model 300 is determined as:L _(DLLS)(x _(e) ,x _(g))=L _(e) f _(t)(x _(g)),x _(e)∈Ω_(e) ∧x_(g)∈Ω_(g)where x_(e) is the position on the domain of emissive layer (Ω_(e)),x_(g) is the position on the lighting gel layer 304 (Ω_(g)), L_(e) isthe constant out-going radiance from emissive layer, and f_(t)(x_(g)) isthe BTDF at the position x_(g) on the lighting gel layer 304 (Ω_(g)).

The emissive layer 302 is implemented in various manners, for example asa single point or an area (e.g., an ellipse or other shape). Thelighting gel layer 304 is one of any of a variety of different shapes,such as a rectangle, ellipse, outline of text, and so forth. Thelighting gel layer 304 is generated based on any of a variety ofdifferent types of images or drawings, such as pixel images, rasterimages, vector art, and so forth.

The intersection of the light ray emitted from the emissive layer 302with the lighting gel layer 304 is used for generating the finalemission of the multi-layer light model 300 (L_(DLLS)). The lighting gellayer 304 is used for modeling the light source rather than treated as areal intersection when rendering (e.g., using Monte Carlo rendering).Illumination using the multi-layer light model 300 is simulated bytracing lighting paths or photons from the emissive layer 302 orintersecting camera paths with the emissive layer 302. Accordingly, thelight ray is not traced from or intersected with the lighting gel layer304 but rather traced from or intersected with the emissive layer 302.Thus, an object intersected by the ray segment x_(e)→x_(g) isilluminated with L_(DLLS) rather than L_(e).

Light rays passing through the lighting gel layer 304 are affected bythe lighting gel layer 304 in accordance with the image used as lightinggel layer 304. In one or more implementations light rays not passingthrough the lighting gel layer 304 have a radiance of zero. Accordingly,light rays not passing through the lighting gel layer 304 do not resultin the emissive layer 302 altering the appearance or illumination oflocations on a canvas or 3D object based on those light rays. Thelighting gel layer 304 is in 2D space rather than being modeled in 3Dspace and thus the multi-layer light source 106 need not model thetexture of the lighting gel layer 304 in 3D space. Accordingly, themulti-layer light source 106 need not make a 3D geometry in the lightinggel layer 304 and need not make any specific materials of the lightinggel texture in 3D space in the lighting gel layer 304. However, thelighting gel layer 304 adjusts the emissions from the emissive layer302, creating lighting effects similar to or consistent with thelighting effects that are generated by constructing 3D geometry and 3Dmaterial.

User inputs for interacting with (e.g., modifying) the multi-layer lightsource system 106 are received with reference to an orthographic view ofa canvas, allowing the user interaction to remain in 2D space. FIG. 4illustrates an example system 400 using the multi-layer light sourcesystem 106. The system 400 assumes a canvas 402 is a rectangle (or othershape) which is placed at the origin [0, 0, 0]^(T), where the [ . . .]^(T) notation indicates a transpose of the matrix [ . . . ]. The normalof the canvas is the z axis, which is [0, 0, 1]^(T). The view is fixedwith an orthographic camera 404 placed at [0, 0,+∞]^(T) and having aviewport that is aligned with the canvas 402, as illustrated by camerarays 406. One or more 3D objects, such as 3D object 408, are placed onthe canvas 402 and rendered with different materials and lights, so the2D design is rendered using 3D techniques. All interactions withlighting design are achieved within the orthographic view of canvas 402.Although a single 3D object 408 is illustrated, alternatively multiple3D objects are placed on the canvas 402.

The light source configuration module 204 implements functionality toconfigure the multi-layer light source based on the inputs received bythe user input module 202. One such configuration performed by theconfiguration module 204 is setting the texture of the lighting gellayer.

FIG. 5 illustrates an example 500 of a multi-layer light source andlight rays intersecting a canvas. The example 500 includes a 3D object502, which is any 3-dimensional shape or geometry, on a canvas 504. Themulti-layer light source includes an emissive layer 506 and a lightinggel layer 508. In one or more implementations, user input specifying thetexture of the lighting gel layer 508 is received. This user input is inany of a variety of different forms, such as dragging and dropping atexture (e.g., an image or drawing) on the canvas 504, user input of afile name or location of a texture (e.g., an image or drawing file), andso forth.

The texture is at position [x_(t), y_(t), 0]^(T) and is scaled to bewith dimension w_(t)×h_(t), where x_(t) refers to a position in thetexture on the x axis, y_(t) refers to a position in the texture on they axis, w_(t) refers to the width of the texture and h_(t) refers to theheight of the texture. In one or more implementations the emissive layer506 and the lighting gel layer 508 are parallel to the canvas 504 andhave normals that are the same as the negative z axis, which is [0,0,−1]^(T). Having the emissive layer 506 and the lighting gel layer 508parallel to the canvas 504 simplifies the calculations performed by theray emission determination module 206 and the image generation system108. Additionally or alternatively, the emissive layer 506 or thelighting gel layer 508 are at an angle other than parallel to the canvas504.

The light source configuration module 204 maps the lighting gel layer508 with the texture, places the lighting gel layer 508 at [x_(t),y_(t), z_(g)]^(T), and scales the lighting gel layer 508 to be the samedimension w_(t)×h_(t), where z_(g) refers to the location along the zaxis of the lighting gel layer 508 (e.g., the height of the lighting gellayer 508 or the distance between the canvas 504) and |z_(g)| is thedistance between the lighting gel layer 508 and the canvas 504. Thevalue of z_(g) is determined in various different manners, such as adefault setting, a user input specifying the value, and so forth. In theillustrated example 500 the emissive layer 506 is degenerated to a pointat [0,0, +∞]^(T). Additionally or alternatively, the emissive layer 506takes various shapes (e.g., an ellipse) as discussed in more detailbelow. In one or more implementations the value |z_(g)| is large enoughto be outside a bounding box of all 3D objects (e.g., 3D object 502).The emissive layer 506 along with the lighting gel layer 508 cast theemission pattern of the lighting gel layer 508 texture onto the canvas504 and 3D object 502. After the lighting gel layer 508 is mapped withthe texture, the texture, if still present on the canvas 504, is deletedfrom the canvas 504.

Multiple (m) light rays 510(1), . . . , 510(m) emanate from the emissivelayer 506, pass through the lighting gel layer 508, and illuminate the3D object 502 and the canvas 504. The image generation system 108determines the color of each location (e.g., each pixel) on the canvas504 (as well as each location (e.g., each pixel) on the 3D object 502)based on a texture or color of the canvas and the multi-layer lightsource. In one or more implementations, the image generation system 108traces each light ray intersecting the canvas 504 or the 3D object 502back to the emissive layer 506. Some of these light rays 520 intersectthe lighting gel layer 508, but in some situations, depending on thedimensions of the lighting gel layer 508, some of these light rays 510do not intersect the lighting gel layer 508. Additionally oralternatively, the image generation system 108 only traces each lightray intersecting one of the canvas 504 and the 3D object 502. The imagegeneration system 108 traces the light rays using any of a variety ofpublic or proprietary techniques, such as proper ray tracing techniques,projective geometry techniques, and so forth.

The image generation system 108 uses any of a variety of public orproprietary techniques to determine the color of a location on a canvasor a 3D object. Each light ray passing through the lighting gel layercarries a radiance (L_(DLLS)) that is determined by the intersection ofthe light ray with the lighting gel layer and is used by the imagegeneration system 108 in determining the color of the location on thecanvas or 3D object. In one or more implementations, the imagegeneration system 108 determines the color of a location (e.g., a pixel)on the canvas 504 or the 3D object 502 that one or more light rays 510intersect based on a combination (e.g., average) of the one or morecolors that are in the lighting gel layer 508 that the one or more lightrays 510 pass through. The image generation system 108 also accounts forshadowing and blurring as discussed in more detail below. Additionallyor alternatively, the image generation system 108 determines the colorof a location (e.g., a pixel) on the canvas 504 or the 3D object 502that one or more light rays 510 intersect based on a combination of theone or more colors that are in the lighting gel layer 508 that the oneor more light rays 510 pass through and the underlying color of thecanvas 504 or 3D object 502 at that location (e.g., a weightedcombination based on a transparency value for the lighting gel layer 508optionally set by the user). Additionally or alternatively, the emissivelayer 506 itself has a color other than white, in which case the imagegeneration system 108 determines the color of a location (e.g., a pixel)on the canvas 504 or the 3D object 502 that one or more light rays 510intersect based on the color of the emissive layer 506 as well.

Returning to FIG. 2, the shadow generation module 208 implementsfunctionality to determine areas of shadows cast by objects in the 3Dspace. In the illustrated example 500 of FIG. 5, the emissive layer 506of the multi-layer light source is distant and the lighting direction isperpendicular to the canvas 504. Accordingly, no shadows are rendereddue to the 3D object 502. However, in some situations in which thelighting direction is not perpendicular to the canvas or the emissivelayer of the multi-layer light source is not distant, 3D objects castshadows on the canvas, other 3D objects, or other portions of the same3D object. The shadow generation module 208 determines areas of shadowscast by a 3D object, including the direction and length of shadows.

The shadow generation module 208 receives input data 228 that includesthe position indication 220 identifying a position of the multi-layerlight source (e.g., of the emissive layer of the multi-layer lightsource). User inputs are optionally received adjusting the location ofthe multi-layer light source (e.g., the emissive layer of themulti-layer light source) in 2D space (e.g., along the x and ydimensions). This allows the user to provide input indicating a locationof the multi-layer light source so as to have 3D objects cast shadows.

The shadow generation module 208 determines the locations or areas ofshadows on a canvas or 3D object and provides an indication of thoseshadow locations or areas to the light source configuration module 204.The light source configuration module 204 provides the indication of theshadow locations or areas to the image generation system 108 allowingthe image generation system 108 to generate the shadow in thoselocations or areas (e.g., by not tracing a light ray from the shadowlocations to the emissive layer and not modifying the shadow locationsbased on the emissive layer or the lighting gel layer). Additionally oralternatively, the shadow generation module 208 provides the indicationof shadow locations or areas to the image generation system 108 directlyrather than via the ray emission determination module 206.

FIG. 6 illustrates another example 600 of a multi-layer light source andlight rays intersecting a canvas. The example 600 includes an object 502on a canvas 504 and a color or texture of the canvas 504 optionally setby a user input analogous to example 500 of FIG. 5. However, example 600differs from example 500 in that in example 600 the lighting directionfor the multi-layer light source is not perpendicular to the canvas 504but has been shifted to the right. Accordingly, shadows are cast due tothe 3D object 502.

The multi-layer light source includes an emissive layer 602 and alighting gel layer 604. The multi-layer light source in example 600 isanalogous to the multi-layer light source example in example 500 of FIG.5, except that the direction from the lighting gel layer 604 to theemissive layer 602 is changed so that the lighting direction for themulti-layer light source is not perpendicular to the canvas 504. In oneor more implementations, this change is in response to user inputindicating a direction to move the emissive layer 602 in 2D space.Larger distances of movement result in larger changes in the lightingdirection and larger shadows on the canvas 504 and 3D object 502.

The direction to cast the shadow is set as [x_(s), y_(s)]^(T) wherex_(s) refers to the movement of the emissive layer 602 relative to thelighting gel layer 604 in the x dimension, y_(s) refers to the movementof the emissive layer 602 relative to the lighting gel layer 604 in thex dimension, and x_(s) ²+y_(s) ²=1. Depending on the units used toindicate the direction to move the emissive layer 602, the amounts tomove are scaled as appropriate so that x_(s) ²+y_(s) ²=1. The parameterof shadow length is set as α_(s) ∈(0,1], which is the dot product of thedirection to cast the shadow ([x_(s), y_(s)]^(T)) and the normal of thecanvas 504. The direction of lighting ω_(l) is the determined as:ω_(l)=[−x _(s)√{square root over (1−α_(s) ²)},−y _(s)√{square root over(1−α_(s) ²)},α_(s)]^(T)and the lighting gel layer 604 is then calculated as:[x _(t) ,y _(t)0]^(T)+(z _(g)/α_(s))ω_(l) ^(T)where the z coordinate of the lighting gel layer 604 is kept as z_(g)(as in example 500 of FIG. 5). The calculated value for the lighting gellayer 604 shifts the lighting gel layer 604 in the x dimension or the ydimension by an amount based on the direction of lighting ω_(l) so thatthe light rays from the emissive layer 602 continue to pass through thelighting gel layer 604. The emissive layer 602 is translated to [ω_(l)^(T),0]^(T) where a 4-dimensional (4D) homogenous coordinate is used torepresent an infinite position.

Given the direction of lighting ω_(l), one or more areas of shadowsresulting from the 3D object 502 are readily identified. In the example600, a shadow 606 is cast by the 3D object 502 given the direction oflighting as illustrated by light rays 608(1), . . . , 608(m). The areaof the shadow 606 is readily ascertained based on the dimensions of the3D object 502 and the direction of lighting. Although illustrated asbeing cast on the canvas 504, situations also arise in which shadows arecast on other 3D objects, shadows are cast on one part of the 3D object502 by another part of the 3D object 502, and so forth.

The image generation system 108 uses the one or more areas of shadowscast by the 3D object 502 in various different manners. In one or moreimplementations, light rays from the multi-layer light source do notintersect the canvas 504 in the area of the shadow so the imagegeneration system 108 displays, for each location in the shadow, thecolor or texture of that location (unaltered by the multi-layer lightsource). Additionally or alternatively, the image generation system 108displays a default color (e.g., black or grey) for each location in theshadow (e.g., indicating that the light rays from the multi-layer lightsource have been blocked). This default color is optionally combinedwith the color or texture of that location (e.g., a weighted combinationof the default color and the color or texture of that location),resulting in the locations in the shadow being darkened but notcompletely the default color.

A distant light source, as illustrated in example 500, casts shadowsalong the same direction throughout the canvas. In contrast, a local(e.g., close) light source produces variations of shadows. FIG. 7illustrates another example 700 of a multi-layer light source and lightrays intersecting a canvas. The example 700 includes an object 502 on acanvas 504 and a color or texture of the canvas 504 optionally set by auser input analogous to example 500 of FIG. 5. Multiple (m) light rays702(1), . . . , 702(m) emanate from the emissive layer 704, pass throughthe lighting gel layer 706, and illuminate the 3D object 502 and thecanvas 504.

The example 700 illustrates shadows cast by the 3D object 502 analogousto example 600 of FIG. 6, however, example 700 differs from example 600in that in example 700 the lighting source is local (e.g., emissivelayer 704 is local). Accordingly, shadows are cast due to the 3D object502 differently in example 700 than in example 600.

The shadow generation module 208 receives a parameter α_(e) ∈[0,1),optionally set via user input, indicating how local the emissive layer704 is. In one or more implementations, smaller values of α_(e) indicatea shorter distance between the emissive layer 704 and the lighting gellayer 706 (e.g., the emissive layer 704 is more local) and larger valuesof α_(e) indicate a longer distance between the emissive layer 704 andthe lighting gel layer 706 (e.g., the emissive layer 704 is less local).

The shadow generation module 208 scales the lighting gel layer 706 to be(1−α_(e))w_(t)×(1−α_(e))h_(t) and the emissive layer 704 is translatedto [x_(t), y_(t), 0]^(T)+(z_(e)/α_(s))ω_(l) ^(T) with the z coordinateof the emissive layer 704 being z_(e)=(z_(g)/α_(e)).

Given the direction of lighting ω_(l), one or more areas of shadowsresulting from the 3D object 502 are readily identified. In the example700, a shadow 708 and a shadow 710 are cast by the 3D object 502 giventhe direction of lighting as illustrated by light rays 702(1), . . . ,702(m). The area of the shadows 708 and 710 are readily ascertainedbased on the dimensions of the 3D object 502 and the direction oflighting ω_(l). Although illustrated as being cast on the canvas 504,situations also arise in which shadows are cast on other 3D objects,shadows are cast on one part of the 3D object 502 by another part of the3D object 502, and so forth.

FIG. 8 illustrates another example 800 of a multi-layer light source andlight rays intersecting a canvas. The example 800 includes an object 502on a canvas 504 and a color or texture of the canvas 504 optionally setby a user input analogous to example 500 of FIG. 5. Multiple (m) lightrays 802(1), . . . , 802(m) emanate from the emissive layer 804, passthrough the lighting gel layer 806, and illuminate the 3D object 502 andthe canvas 504.

The example 800 illustrates shadows cast by the 3D object 502 analogousto example 700 of FIG. 7, however, example 800 differs from example 700in that in example 800 the emissive layer 804 is an area includingmultiple points (e.g., an ellipse) rather than a single point.Accordingly, shadows are cast due to the 3D object 502 differently inexample 800 than in example 700 and the texture from the lighting gellayer 804 is blurred in other areas of the canvas 504 where shadows arenot cast.

For example, because the emissive layer 804 is an area larger than asingle point (e.g., is an ellipse), multiple rays from the emissivelayer 804 pass through the lighting gel layer 806 and intersect eachlocation (e.g., each pixel) of the object 502 and canvas 504. Thisresults in areas of soft shadows being cast, which are areas on theobject 502 or canvas 504 where some rays from the emissive layer 804 areoccluded by an object and other rays are not occluded. Accordingly,rather than a hard shadow where all light rays that would intersect alocation on the canvas 504 or object 502 are occluded, only some of thelight rays are occluded in the example 800. In the example 800 the areawhere a soft shadow 808 is cast is illustrated as well as the area wherea hard shadow 810 is cast.

Furthermore, in areas where shadows are not cast (or within the softshadow area), the multiple rays from the emissive layer 804 passingthrough different locations of the lighting gel layer 806 andintersecting each location (e.g., each pixel) of the object 502 andcanvas 504 result in an area of blur.

The anisotropic blur module 210 implements functionality to determinethe blur and soft shadows resulting from an emissive layer that islarger than a single point. In the examples of FIGS. 5, 6, and 7 abovewhere the emissive layer is a single point, the pattern of incominglighting on the canvas 504 is determined by the lighting gel layertexture only. However, in situations in which the emissive layer is anarea larger than a single point, the lighting gel layer texture isblurred as discussed above. This allows, for example, soft lightingeffects (e.g., blur and soft shadows) to be generated without creating apre-generated lighting gel layer texture having those effects. Insituations in which the lighting direction is not perpendicular to thecanvas 504, the blurriness is anisotropic.

The anisotropic blur module 210 generates the soft lighting effects orblur by receiving user input, referred to as a blur kernel. An exampleof the area of the blur kernel is illustrated as blur kernel 812. Theuser input is received in any of a variety of different manners, such asthe user drawing of an area (e.g., an ellipse) on the canvas 504. In oneor more implementations, given an elliptical blur kernel on the canvas504 having a semi-major axis of k_(a) and a semi-minor axis of k_(b),the anisotropic blur module 210 determines the emissive layer 804 to bean ellipse having a semi-major axis of (1/α_(e)−1)k_(a) and a semi-minoraxis of (1/α_(e)−1)k_(b).

Furthermore, the anisotropic blur module 210 determines the major axisof the emissive layer 804 to be the same as the shadow direction, whichis [x_(s), y_(s), 0]^(T). This results in the anisotropies of bothtexture blurriness and soft shadows from 3D object being consistent. Theanisotropic blur module 210 provides these determined values for theemissive layer 804 to the light source configuration module 204, whichsets the various parameters of the emissive layer 804 to be the valuesdetermined by the anisotropic blur module 210.

The emission scaling module 212 implements functionality to determinechanges in the scale of emission by the multi-layer light source due toshadows or blurriness. These changes in the scale of emission keep theirradiance on the canvas 504 approximately unchanged despite anyshadowing or blurriness. Accordingly, users perceive little or no changein the overall brightness of the object 502 or canvas 504 despite thepresence of blurring or shadows. The emission scaling module 212 scalesL_(e), which is the constant out-going radiance from the emissive layeras discussed above with reference to determining the final emission ofthe multi-layer light model (L_(DLLS)).

In one or more implementations, the emission scaling module 212approximates the irradiance at the center of the canvas 504 (or centerof texture on the canvas 504 if some portions of the canvas 504 have notexture) excluding the factor of the lighting gel layer. The irradianceI([x_(t), y_(t),0]^(T)) is approximated as:

${{I\left( \left\lbrack {x_{t},y_{t},0} \right\rbrack^{T} \right)} \approx {\hat{I}}_{c}} = {{L_{e}\frac{A_{e}\alpha_{s}^{2}}{\left( \frac{z_{e}}{\alpha_{s}} \right)^{2}}} = {\frac{{\pi\left( {1 - \alpha_{e}} \right)}^{2}\alpha_{s}^{4}k_{a}k_{b}}{z_{g}^{2}}L_{e}}}$where A_(e) is the area of emissive layer, I([x_(t), y_(t), 0]^(T)) isthe irradiance on canvas at [x_(t), y_(t), 0]^(T), and Î_(c) is theapproximation of the irradiance on canvas. As discussed above, α_(s)refers to the shadow length, α_(e) refers to how local the emissivelayer is, k_(a) refers to the major axis of an elliptical blur kernel,k_(b) refers to the minor axis of an elliptical blur kernel, |z_(g)|refers to the distance between the lighting gel layer and the canvas,and z_(e) refers to the z coordinate of the emissive layer. Theirradiance on the canvas is kept approximately constant. Accordingly,the emission scaling module 212 generates a value for L_(e) in responseto a change in any of α_(s), α_(e), k_(a), or k_(b) as:

$L_{e}\frac{{\hat{I}}_{c}z_{g}^{2}}{{\pi\left( {1 - \alpha_{e}} \right)}^{2}\alpha_{s}^{4}k_{a}k_{b}}$

The emission scaling module 212 provides these generated values forL_(e) to the light source configuration module 204, which sets the valueL_(e) for the emissive layer 804 to be the generated value.

FIG. 9 illustrates an example user interface 900 allowing user input tocontrol various aspects of the multi-layer light source. The userinterface 900 displays controls 902, 904, 906, and 908 that areadjustable by a user in any of a variety of different manners, such astouch input, gesture input, keyboard input, voice input, and so forth.Each of the controls 902, 904, 906, and 908 is illustrated as a sliderwith a button that the user slides along a track to select a value thatis displayed in a box adjacent to the track. Additionally oralternatively, the controls 902, 904, 906, and 908 receive user input indifferent manners, such as user input via a keyboard to enter aparticular value (e.g., entering the value in the box adjacent to thetrack).

FIG. 10 illustrates an example 1000 of an object and a lighting gellayer used with the techniques discussed herein. The illustrated example1000 includes an object 1000 and a lighting gel layer texture 1004. Inthe illustrated example 1000 the object 1000 is a 2D geometry that ismapped to a 3D geometry (e.g., by the image generation system 108 oranother system or module) using any of a variety of public orproprietary techniques. Examples of mapping the 2D geometry to 3Dgeometry include using conventional effects such as bevel, extrude,revolve, and so forth. Additionally or alternatively, an object iscreated (e.g., by another system or module) as a 3D geometry andselected (e.g., imported or copied) by the user.

Returning to FIG. 9, the control 902 corresponds to an intensityparameter of the multi-layer light source. The intensity parametercontrols the intensity of the emissive layer and thus controls theintensity of the emitted light passing through the lighting gel layer.In response to a user input specifying the intensity of the emissivelayer, the light source configuration module 204 of FIG. 2 adjusts theintensity of the emissive layer in accordance with the user input.Higher intensity values result in brighter or crisper projections of thelighting gel layer on the canvas or 3D object than lower intensityvalues. The intensity values can be in various units, such as a customunit that is the maximum intensity supported by the emissive layer 302divided by a particular number (e.g., 33 in the illustrated example),illustrated as intensity values ranging from 0 to 32. FIG. 11illustrates examples of using different intensity values. The texturefrom the lighting gel layer projected onto a 3D object with a lowerintensity value is illustrated at example 1102 and the texture from thelighting gel layer projected onto a 3D object with a higher intensityvalue is illustrated at example 1104.

The control 904 corresponds to a distance parameter of the multi-layerlight source. The distance parameter controls the distance of thelighting gel layer from the 3D object or canvas. In response to a userinput specifying the distance of the lighting gel layer from the 3Dobject or canvas, the light source configuration module 204 of FIG. 2adjusts the intensity of the distance of the lighting gel layer from the3D object or canvas (z_(g)) in accordance with the user input. Largerdistance values result in larger projections of the lighting gel layeron the canvas or 3D object than smaller distance values. The distancevalues can be in various units, such as a custom unit that is themaximum supported (non-infinity) distance between the emissive layer 302and the lighting gel layer 304 divided by a particular number (e.g., 33in the illustrated example), illustrated as distance values ranging from0 to 32. FIG. 12 illustrates examples of using different distancevalues. The texture from the lighting gel layer projected onto a 3Dobject with a larger distance value is illustrated at example 1202 andthe texture from the lighting gel layer projected onto a 3D object witha smaller distance value is illustrated at example 1204.

The controls 906 and 908 correspond to position parameters of themulti-layer light source. The position parameter controls the positionof the lighting gel layer with respect to the 3D object or canvasallowing the projection of the lighting gel layer to be displayed in theX-Y plane. In response to a user input changing the position of thelighting gel layer, the light source configuration module 204 of FIG. 2changes the position of the lighting gel layer in accordance with theuser input. Changing the X position parameter using the control 906displaces the projection of the lighting gel layer on the canvas or 3Dobject in the X dimension. Changing the Y position parameter using thecontrol 908 displaces the projection of the lighting gel layer on thecanvas or 3D object in the Y dimension. The position values can be invarious units, such as a custom unit that is the maximum movement of thelighting gel layer 304 in the X dimension (for control 906) or the Ydimension (for the control 908) divided by a particular number (e.g.,601 in the illustrated example), illustrated as position values rangingfrom −300 to 300. FIG. 13 illustrates examples of changing the positionparameter values. The texture from the lighting gel layer projected ontoa 3D object with one X position parameter is illustrated at example 1302and the texture from the lighting gel layer projected onto a 3D objectwith a different (e.g., smaller) X position parameter is illustrated atexample 1304.

The user interface 900 also includes additional controls including acheckbox 910, and buttons 912 and 914. The checkbox 910 allows the userto request that a preview of changes to the projection of the lightinggel layer on the canvas or 3D object be displayed to the user inresponse to each change to one of the controls 902, 904, 906, or 908.Selection of the cancel button 912 closes the user interface 900 withoutmaking any changes to the lighting parameters. Selection of the OKbutton 914 accepts the changes made to the lighting parameters via oneor more of the controls 902, 904, 906, or 908.

FIG. 14 illustrates another example 1400 of a lighting gel layer and 3Dobject. The example 1400 includes a lighting gel layer 1402 and a 3Dobject 1404. The texture from the lighting gel layer 1402 projected ontothe 3D object is illustrated at 1406. As illustrated, areas of shadowsare shown at 1406 where portions of the 3D object 1404 occluded themulti-layer light source. Furthermore, as shown at 1406 the lighting gellayer 1402 is projected on a portion of the 3D object 1404 as well asthe underlying canvas, but locations of the canvas and the 3D object1404 for which light rays are not traced back to the emissive layerthrough the lighting gel layer 1402 are not altered by the multi-layerlight source.

Returning to FIG. 1, the multi-layer light source 106 is discussedherein with examples including a single 3D object. However, themulti-layer light source 106 is usable with any number of 3D objectsthat, using the techniques discussed herein, each casts shadows on thecanvas, on the 3D object itself, or on another 3D object.

Furthermore, the multi-layer light source 106 is discussed herein withreference to including a single lighting gel layer. Additionally oralternatively, the multi-layer light source 106 includes two or morelighting gel layers.

FIG. 15 illustrates another example multi-layer light source used by rayemission determination module 206 of FIG. 2. The multi-layer lightsource is a multi-layer light model 1500 similar to the multi-layerlight model 300 of FIG. 3, except that an additional lighting gel layeris situated between the emissive layer 302 and the lighting gel layer304. The multi-layer light model 1500 includes an emissive layer 1502analogous to emissive layer 302 of FIG. 3 and a lighting gel layer 1504analogous to the lighting gel layer 304 of FIG. 3. The emissive layer1502 is a constant diffuse emitter. The final emission L_(DLLS)(x_(e),x_(g)) along a light ray traced from a position x_(e) on the emissivelayer 1502 is determined by its intersection of the lighting gel layer1504 at a position x_(g) and its intersection of the lighting gel layer1506 at a position x_(il). In one or more implementations, the lightinggel layers 1504 and 1506 are each implemented as a spatial-variant butdirectional-constant BTDF, analogous to lighting gel layer 304 of FIG.3.

The lighting gel layer 1506 is implemented analogous to the lighting gellayers discussed above with various user inputs controlling theparameters of the lighting gel layer 1506. These include the X and Ypositions values for the lighting gel layer 1506, changing a distanceparameter for the lighting gel layer 1506, and so forth. The lightinggel layer 1506 is generated in the same manner as the lighting gellayers discussed above. For example, the user identifies a texture thatis mapped to the lighting gel layer 1506. In one or more implementationsdifferent textures are mapped to the lighting gel layer 1504 and thelighting gel layer 1506. Additionally or alternatively, the same textureis mapped to both the lighting gel layer 1504 and the lighting gel layer1506.

In one or more implementations, the dimensions of the lighting gel layer1504 and the lighting gel layer 1506 are different (e.g., the dimensionsof each lighting gel layer 1504 and 1506 are scaled to the dimensions ofthe texture mapped to the lighting gel layer). Additionally oralternatively, the dimensions of the lighting gel layers 1504 and 1506are the same.

Example Procedures

The following discussion describes techniques that are implementedutilizing the previously described systems and devices. Aspects of theprocedure are implemented in hardware, firmware, software, or acombination thereof. The procedure is shown as a set of blocks thatspecify operations performed by one or more devices and are notnecessarily limited to the orders shown for performing the operations bythe respective blocks. In portions of the following discussion,reference is made to FIGS. 1-15.

FIG. 16 is a flow diagram 1600 depicting a procedure in an exampleimplementation of a multi-layer lighting source with textured lightinggel layer. In this example, a 2D image having a texture is received(block 1602). This image is received in various manners, such as beingdragged and dropped onto a 2D canvas.

A user input indicating a positioning of the 2D image is received (block1604). This positioning is a positioning of the 2D image on a 2D canvasor a 3D object.

The texture of the 2D image is mapped to a 2D lighting gel layer of amulti-layer light source (block 1606). The multi-layer light sourceincludes an emissive layer and the 2D lighting gel layer situatedbetween the emissive layer and the 2D canvas.

An emission from the 2D lighting gel layer is determined based on theemissive layer and the 2D lighting gel layer (block 1608). Thisdetermined emission is the emission of the multi-layer light source.

Colors of locations on the 2D canvas or the 2D object are changed basedon the emission of the multi-layer light source and colors of locationsof the workload lighting gel layer (block 1610). The color of a locationon the 2D canvas or the 3D objects is changed based on the color of alocation of the 2D lighting gel layer that a light ray passes through inilluminating the 2D canvas or the 3D object.

Example System and Device

FIG. 17 illustrates an example system generally at 1700 that includes anexample computing device 1702 that is representative of one or morecomputing systems and/or devices that implement the various techniquesdescribed herein. This is illustrated through inclusion of theapplication 104 with the multi-layer light source 106 and the imagegeneration system 108. The computing device 1702 is, for example, aserver of a service provider, a device associated with a client (e.g., aclient device), an on-chip system, and/or any other suitable computingdevice or computing system.

The example computing device 1702 as illustrated includes a processingsystem 1704, one or more computer-readable media 1706, and one or moreI/O interface 1708 that are communicatively coupled, one to another.Although not shown, in one or more implementations the computing device1702 further includes a system bus or other data and command transfersystem that couples the various components, one to another. A system busincludes any one or combination of different bus structures, such as amemory bus or memory controller, a peripheral bus, a universal serialbus, and/or a processor or local bus that utilizes any of a variety ofbus architectures. A variety of other examples are also contemplated,such as control and data lines.

The processing system 1704 is representative of functionality to performone or more operations using hardware. Accordingly, the processingsystem 1704 is illustrated as including hardware element 1710 that areconfigured, for example, as processors, functional blocks, and so forth.The processing system 1704 is optionally implemented in hardware as anapplication specific integrated circuit or other logic device formedusing one or more semiconductors. The hardware elements 1710 are notlimited by the materials from which they are formed, or the processingmechanisms employed therein. For example, in one or more implementationsprocessors are comprised of semiconductor(s) and/or transistors (e.g.,electronic integrated circuits (ICs)). In such a context,processor-executable instructions include electronically-executableinstructions.

The computer-readable storage media 1706 is illustrated as includingmemory/storage 1712. The memory/storage 1712 represents memory/storagecapacity associated with one or more computer-readable media. Thememory/storage component 1712 represents memory/storage capacityassociated with one or more computer-readable media. The memory/storagecomponent 512 includes one or both of volatile media (such as randomaccess memory (RAM)) and nonvolatile media (such as read only memory(ROM), Flash memory, optical disks, magnetic disks, and so forth). Thememory/storage component 1712 includes one or both of fixed media (e.g.,RAM, ROM, a fixed hard drive, and so on) and removable media (e.g.,Flash memory, a removable hard drive, an optical disc, and so forth).The computer-readable media 1706 is optionally configured in a varietyof other ways as further described below.

Input/output interface(s) 1708 are representative of functionality toallow a user to enter commands and information to computing device 1702,and also allow information to be presented to the user and/or othercomponents or devices using various input/output devices. Examples ofinput devices include a keyboard, a cursor control device (e.g., amouse), a microphone, a scanner, touch functionality (e.g., capacitiveor other sensors that are configured to detect physical touch), a camera(e.g., which employs visible or non-visible wavelengths such as infraredfrequencies to recognize movement as gestures that do not involvetouch), and so forth. Examples of output devices include a displaydevice (e.g., a monitor or projector), speakers, a printer, a networkcard, tactile-response device, and so forth. Thus, the computing device1702 is configured in a variety of ways as further described below tosupport user interaction.

Various techniques are described herein in the general context ofsoftware, hardware elements, or program modules. Generally, such modulesinclude routines, programs, objects, elements, components, datastructures, and so forth that perform particular tasks or implementparticular abstract data types. The terms “module,” “functionality,” and“component” as used herein generally represent software, firmware,hardware, or a combination thereof. The features of the techniquesdescribed herein are platform-independent, meaning that the techniquesare implementable on a variety of commercial computing platforms havinga variety of processors.

An implementation of the described modules and techniques is optionallystored on or transmitted across some form of computer-readable media.The computer-readable media includes any of a variety of media that isaccessible by the computing device 1702. By way of example, and notlimitation, computer-readable media includes “computer-readable storagemedia” and “computer-readable signal media.”

“Computer-readable storage media” refers to media and/or devices thatenable persistent and/or non-transitory storage of information incontrast to mere signal transmission, carrier waves, or signals per se.Computer-readable storage media is non-signal bearing media. Thecomputer-readable storage media includes hardware such as volatile andnon-volatile, removable and non-removable media and/or storage devicesimplemented in a method or technology suitable for storage ofinformation such as computer readable instructions, data structures,program modules, logic elements/circuits, or other data. Examples ofcomputer-readable storage media include, but are not limited to, RAM,ROM, EEPROM, flash memory or other memory technology, CD-ROM, digitalversatile disks (DVD) or other optical storage, hard disks, magneticcassettes, magnetic tape, magnetic disk storage or other magneticstorage devices, or other storage device, tangible media, or article ofmanufacture suitable to store the desired information and which isaccessed by a computer.

“Computer-readable signal media” refers to a signal-bearing medium thatis configured to transmit instructions to the hardware of the computingdevice 1702, such as via a network. Signal media typically embodiescomputer readable instructions, data structures, program modules, orother data in a modulated data signal, such as carrier waves, datasignals, or other transport mechanism. Signal media also include anyinformation delivery media. The term “modulated data signal” means asignal that has one or more of its characteristics set or changed insuch a manner as to encode information in the signal. By way of example,and not limitation, communication media include wired media such as awired network or direct-wired connection, and wireless media such asacoustic, RF, infrared, and other wireless media.

As previously described, hardware elements 1710 and computer-readablemedia 1706 are representative of modules, programmable device logicand/or fixed device logic implemented in a hardware form that areemployed in some implementations to implement at least some aspects ofthe techniques described herein, such as to perform one or moreinstructions. Hardware includes, for example, components of anintegrated circuit or on-chip system, an application-specific integratedcircuit (ASIC), a field-programmable gate array (FPGA), a complexprogrammable logic device (CPLD), and other implementations in siliconor other hardware. In this context, hardware operates as a processingdevice that performs program tasks defined by instructions and/or logicembodied by the hardware as well as a hardware utilized to storeinstructions for execution, e.g., the computer-readable storage mediadescribed previously.

Combinations of the foregoing are optionally employed to implementvarious techniques described herein. Accordingly, in one or moreimplementations software, hardware, or executable modules areimplemented as one or more instructions and/or logic embodied on someform of computer-readable storage media and/or by one or more hardwareelements 1710. The computing device 1702 is configured to implementparticular instructions and/or functions corresponding to the softwareand/or hardware modules. Accordingly, implementation of a module that isexecutable by the computing device 1702 as software is achievable atleast partially in hardware, e.g., through use of computer-readablestorage media and/or hardware elements 1710 of the processing system1704. The instructions and/or functions executable/operable by one ormore articles of manufacture (for example, one or more computing devices1702 and/or processing systems 1704) to implement techniques, modules,and examples described herein.

The techniques described herein are supported by various configurationsof the computing device 1702 and are not limited to the specificexamples of the techniques described herein. Additionally oralternatively, this functionality is implemented all or in part throughuse of a distributed system, such as over a “cloud” 1714 via a platform1716 as described below.

The cloud 1714 includes and/or is representative of a platform 1716 forresources 1718. The platform 1716 abstracts underlying functionality ofhardware (e.g., servers) and software resources of the cloud 1714. Theresources 1718 include applications and/or data utilizable whilecomputer processing is executed on servers that are remote from thecomputing device 1702. Resources 1718 optionally include servicesprovided over the Internet and/or through a subscriber network, such asa cellular or Wi-Fi network.

The platform 1716 abstract resources and functions to connect thecomputing device 1702 with other computing devices. The platform 1716also optionally serves to abstract scaling of resources to provide acorresponding level of scale to encountered demand for the resources1718 that are implemented via the platform 1716. Accordingly, in aninterconnected device embodiment, implementation of functionalitydescribed herein is distributed throughout the system 1700. For example,the functionality is implemented in part on the computing device 1702 aswell as via the platform 1716 that abstracts the functionality of thecloud 1714.

CONCLUSION

Although the invention has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the invention defined in the appended claims is not necessarilylimited to the specific features or acts described. Rather, the specificfeatures and acts are disclosed as example forms of implementing theclaimed invention.

What is claimed is:
 1. A method in a digital medium environment, themethod comprising: receiving a 2D image having a texture; receiving userinput indicating a positioning of the 2D image on a 2D canvas or on a 3Dobject on the 2D canvas, the user input having two dimensions ofcontrol; mapping the texture to a 2D lighting gel layer of a multi-layerlight source, the 2D lighting gel layer being situated between anemissive layer of the multi-layer light source and the 2D canvas, theemissive layer emitting light rays that pass through the 2D lighting gellayer and project onto the 2D canvas or the 3D object; determining, asthe emission of the multi-layer light source and based on the emissivelayer and the 2D lighting gel layer, an emission from the 2D lightinggel layer; and changing colors of locations on the 2D canvas or the 3Dobject based on the emission of the multi-layer light source and thecolors of locations of the 2D lighting gel layer that the light rayspass through in illuminating the 2D canvas or the 3D object.
 2. Themethod as recited in claim 1, further comprising: identifying, based ona location of the multi-layer light source and a location of the 3Dobject, a shadow area identifying locations on the 3D image object orthe 2D canvas where shadows are cast by the 3D object; and the changingcolors including not changing the colors of the shadow area.
 3. Themethod as recited in claim 1, further comprising: receiving user inputidentifying an area on the 2D canvas; determining, based on the userinput identifying the area on the 2D canvas, an area for the emissivelayer; and setting the emissive layer to be the determined area.
 4. Themethod as recited in claim 1, further comprising: varying an irradianceof the emissive layer in response to a change in a shadow length basedon the multi-layer light source, a change in locality of the multi-layerlight source, or a change in a user specified emissive layer area. 5.The method as recited in claim 1, the 2D lighting gel layer and theemissive layer both being parallel to the 2D canvas.
 6. The method asrecited in claim 1, the multi-layer light source further including anadditional 2D lighting gel layer situated between the emissive layer andthe 2D lighting gel layer.
 7. The method as recited in claim 1, furthercomprising: displaying a user interface including a control receivinguser input changing an intensity of the emissive layer; and changing theintensity of the emissive layer in accordance with the user inputchanging the intensity.
 8. The method as recited in claim 1, furthercomprising: displaying a user interface including a control receivinguser input changing a distance of the 2D lighting gel layer from the 3Dobject or the 2D canvas; and changing the distance of the 2D lightinggel layer from the 3D object or the 2D canvas in accordance with theuser input changing the distance.
 9. The method as recited in claim 1,further comprising: displaying a user interface including a firstcontrol receiving user input changing a position of the 2D lighting gellayer in the x dimension of an x-y plane, and a second control receivinguser input changing a position of the 2D lighting gel layer in the ydimension of the x-y plane; and changing the position of the 2D lightinggel layer in accordance with the user input changing the position of the2D lighting gel layer.
 10. A system comprising: a user input module,implemented at least in part in hardware, to receive a 2D image having atexture and to receive a user input indicating a positioning of the 2Dimage on a 2D canvas or on a 3D object on the 2D canvas, the user inputhaving two dimensions of control; a light source configuration module,implemented at least in part in hardware, to map the texture to a 2Dlighting gel layer of a multi-layer light source, the 2D lighting gellayer being situated between an emissive layer of the multi-layer lightsource and the 2D canvas, the emissive layer configured to emit lightrays that pass through the 2D lighting gel layer and project onto the 2Dcanvas or the 3D object; a ray emission determination module,implemented at least in part in hardware, to determine, as the emissionof the multi-layer light source and based on the emissive layer and the2D lighting gel layer, an emission from the 2D lighting gel layer; andan image generation system, implemented at least in part in hardware, tochange colors of locations on the 2D canvas or the 3D object based onthe emission of the multi-layer light source and the colors of locationsof the 2D lighting gel layer that the light rays pass through inilluminating the 2D canvas or the 3D object.
 11. The system as recitedin claim 10, further comprising a shadow generation module to identify,based on a location of the multi-layer light source and a location ofthe 3D object, a shadow area identifying locations on the 3D object orthe 2D canvas where shadows are cast by the 3D object, and wherein theimage generation system is further to not change the colors of theshadow area.
 12. The system as recited in claim 10, further comprisingan anisotropic blur module to receive user input identifying an area onthe 2D canvas, determine, based on the user input identifying the areaon the 2D canvas, an area for the emissive layer, and wherein the lightsource configuration module is to set the emissive layer to be thedetermined area.
 13. The system as recited in claim 10, furthercomprising an emission scaling module to, with the light sourceconfiguration module, vary an irradiance of the emissive layer inresponse to a change in a shadow length based on the multi-layer lightsource, a change in locality of the multi-layer light source, or achange in a user specified emissive layer area.
 14. The system asrecited in claim 10, the 2D lighting gel layer and the emissive layerboth being parallel to the 2D canvas.
 15. The system as recited in claim10, the multi-layer light source further including an additional 2Dlighting gel layer situated between the emissive layer and the 2Dlighting gel layer.
 16. The system as recited in claim 10, wherein theuser input module is further to display a user interface including acontrol receiving user input changing an intensity of the emissivelayer, and wherein the light source configuration module is further tochange the intensity of the emissive layer in accordance with the userinput changing the intensity.
 17. The system as recited in claim 10,wherein the user input module is further to display a user interfaceincluding a control receiving user input changing a distance of the 2Dlighting gel layer from the 3D object or the 2D canvas, and wherein thelight source configuration module is further to change the distance ofthe 2D lighting gel layer from the 3D object or the 2D canvas inaccordance with the user input changing the distance.
 18. The system asrecited in claim 10, wherein the user input module is further to displaya user interface including a first control receiving user input changinga position of the 2D lighting gel layer in the x dimension of an x-yplane, and a second control receiving user input changing a position ofthe 2D lighting gel layer in the y dimension of the x-y plane, andwherein the light source configuration module is further to change theposition of the 2D lighting gel layer in accordance with the user inputchanging the position of the 2D lighting gel layer.
 19. A systemcomprising: a user input module, implemented at least in part inhardware, to receive a 2D image having a texture and to receive a userinput indicating a positioning of the 2D image on a 2D canvas or on a 3Dobject on the 2D canvas, the user input having two dimensions ofcontrol; means for, implemented at least in part in hardware,determining an emission from a 2D lighting gel layer of a multi-layerlight source, the multi-layer light source including an emissive layerand the 2D lighting gel layer situated between the emissive layer andthe 2D canvas, the emissive layer emitting light rays that pass throughthe 2D lighting gel layer and project onto the 2D canvas or the 3Dobject; and an image generation system, implemented at least in part inhardware, to change colors of locations on the 2D canvas or the 3Dobject based on the emission of the multi-layer light source and thecolors of locations of the 2D lighting gel layer that the light rayspass through in illuminating the 2D canvas or the 3D object.
 20. Thesystem as recited in claim 19, further comprising means for, implementedat least in part in hardware, varying an irradiance of the emissivelayer in response to a change in a shadow length based on themulti-layer light source, a change in locality of the multi-layer lightsource, or a change in a user specified emissive layer area.